<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/WEB-INF/template/globalTemplate.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:c="http://java.sun.com/jsp/jstl/core">

    <ui:define name="title">#{msg['application.titre.utilisateur.parcoursPeda']}</ui:define>

    <ui:define name="ariane">
        <h:commandLink action="/faces/index.xhtml"  
                       value="#{msg['application.titre.accueil']}"/>
        >
        #{msg['application.titre.utilisateur.parcoursPeda']}
    </ui:define>

    <ui:define name="content">

        <h:panelGroup styleClass="titre"><h:outputText value="#{msg['application.titre.utilisateur.parcoursPeda']}"/></h:panelGroup>

        <!-- si c'est un chef (ou BENS) on lui met un selectOneMenu de ses gars-->
        <h:panelGrid columns="3" id="panelFiltre" rendered="#{loginControler.isChef() || loginControler.isGestionnaire()}">

            <h:panelGrid columns="2" rendered="#{loginControler.isChefDirection() || loginControler.isGestionnaire()}">
                <h:outputLabel for="inputDivision" value="Division"/>
                <p:selectOneMenu id="inputDivision"  value="#{parcoursPedaBean.division}" converter="#{genericConverter}">
                    <f:selectItem itemDisabled="true" itemLabel="Tous" itemValue="Tous"/>
                    <f:selectItems value="#{parcoursPedaBean.listDiv}" var="division"/>
                    <p:ajax process="inputDivision" listener="#{parcoursPedaBean.changeDiv()}" update="panelFiltre dataTableParcours"/>
                </p:selectOneMenu>
            </h:panelGrid>

            <h:panelGrid id="panelCours" columns="2" rendered="#{!loginControler.isChefCours()}">
                <h:outputLabel for="inputCours" value="Cours"/>
                <p:selectOneMenu id="inputCours" value="#{parcoursPedaBean.cours}" converter="#{genericConverter}">
                    <f:selectItem itemDisabled="true" itemLabel="Tous" itemValue="Tous"/>
                    <f:selectItems value="#{parcoursPedaBean.listCours}" var="cours"/>
                    <p:ajax listener="#{parcoursPedaBean.changeCours()}" update="panelFiltre dataTableParcours"/>
                </p:selectOneMenu>
            </h:panelGrid>

            <h:panelGrid id="panelPersonne" columns="2">
                <h:outputLabel for="inputPersonne" value="Personne"/>
                <p:selectOneMenu id="inputPersonne"  value="#{parcoursPedaBean.personnel}" converter="#{genericConverter}">
                    <f:selectItem itemDisabled="true" itemLabel="Tous"/>
                    <f:selectItems value="#{parcoursPedaBean.listItemSubordonne}" var="personne"/>
                    <p:ajax listener="#{parcoursPedaBean.changeList()}" update="panelFiltre dataTableParcours"/>
                </p:selectOneMenu>
            </h:panelGrid>
        </h:panelGrid>


        <h:panelGrid columns="2">
            <p:dataTable id="dataTableParcours" value="#{parcoursPedaBean.tableauParcours}"
                         var="infoParticipation" emptyMessage="#{msg['application.emptyMessage']}">  
                <p:columnGroup type="header">  
                    <p:row>  
                        <p:column colspan="2" headerText="Formateur" />  

                        <c:forEach items="#{parcoursPedaBean.listDomaine}" var="domaine">
                            <p:column colspan="#{domaine.listFormation.size()}" headerText="#{domaine.libelle}"/>  
                        </c:forEach>
                        <p:column rowspan="2" headerText="Attestation" rendered="#{loginControler.isGestionnaire()}"/>
                    </p:row>  
                    <p:row>  
                        <p:column headerText="Identité" />  
                        <p:column headerText="Cellule" />  
                        <c:forEach items="#{parcoursPedaBean.listDomaine}" var="domaine">
                            <c:forEach items="#{domaine.listFormation}" var="formation">
                                <p:column headerText="#{formation.libelle}"/>
                            </c:forEach>
                        </c:forEach>
                    </p:row>  
                </p:columnGroup>  

                <p:column><h:outputText value="#{infoParticipation.perso}" converter="#{personnelAttestConverter}"/></p:column>
                <p:column><h:outputText value="#{infoParticipation.perso.utilisateur.entite}"/></p:column>
                <p:columns columnIndexVar="colIndex" value="#{infoParticipation.infos}" var="infos">
                    <h:outputText value="#{infos}" />
                </p:columns>  
                <p:column rendered="#{loginControler.isGestionnaire()}">
                    <p:commandLink action="#{parcoursPedaBean.demanderAttestation(infoParticipation.perso)}"
                                   styleClass="lienCreer lienAction"
                                   value="Version PDF"  
                                   update="globalForm:popup"/>
                </p:column>
            </p:dataTable>
        </h:panelGrid>
    </ui:define>


    <ui:define name="popup">
        <h:panelGrid columns="3">
            <h:outputLabel for="inputDateDebut"
                           value="Date d'entrée à l'ETRS"/>
            <p:calendar value="#{parcoursPedaBean.dateDebut}"
                        id="inputDateDebut" pattern="dd/MM/yyyy" 
                         />
            <p:message for="inputDateDebut"/>

            <h:outputLabel for="inputDateFin"
                           value="Date de mutation"/>
            <p:calendar value="#{parcoursPedaBean.dateFin}"
                        id="inputDateFin" pattern="dd/MM/yyyy"
                         requiredMessage="#{msg['application.requiredMessage']}"/>
            <p:message for="inputDateFin"/>
        </h:panelGrid>
        <h:panelGrid columns="2">
            <p:commandButton id="downloadButton"
                             value="Télécharger"
                             onclick="hide()"
                             ajax="false" type="submit"
                             update="messages globalForm:popup">  
                <p:fileDownload value="#{parcoursPedaBean.attestation}" />  
            </p:commandButton>
            <p:commandButton value="Fermer" onclick="hide()"  
                             action="#{parcoursPedaBean.annuler}"/>
        </h:panelGrid>
    </ui:define>

</ui:composition>
